Routing is a process of forwarding network traffic to destinations. Source routing is a mechanism that partially or completely specifies, within a source route header, a route that a packet may travel via a network. The source route header may comprise a strict list or a loose list of links and/or nodes to traverse. A strict list explicitly lists all of the links and/or nodes a packet may be transported over, whereas a loose list specifies one or more links and/or nodes that the packet may traverse through to reach a destination, but may not include all the links and/or nodes that a packet may traverse through to reach the destination.
Segment routing (SR) is based on source routing, where a node steers a packet through an ordered list of instructions, called segments. A segment may represent any instruction, and may be topological or service-based. A segment may be identified by a segment label. In an SR network, a route may be formed from a plurality of segments and may be indicated as an ordered list of segment labels in a source route header.
SR may be applied to Multiprotocol Label Switching (MPLS) networks (e.g., via MPLS labels) and Internet Protocol version 6 (IPv6) networks (e.g., via routing extension headers). Since in source routing the routes are pre-selected and routing information is inserted into packets at a sender node (e.g., an ingress node of an SR domain), SR may be performed without employing a Resource Reservation Protocol (RSVP) and/or a label Distribution Protocol (LDP).